home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zj.d64 / src.clock < prev    next >
Text File  |  2007-03-01  |  5KB  |  337 lines

  1. ;
  2. ;--------------------------------;
  3. ;                                ;
  4. ; CLOCK - COMAL MODULE           ;
  5. ;                                ;
  6. ; CODE BY G.BUSKER               ;
  7. ; REVISION BY D.KLINGENS / 1.02  ;
  8. ;                                ;
  9. ; BOTH FROM                      ;
  10. ; DUTCH COMAL USERS GROUP        ;
  11. ;                                ;
  12. ; 191186 / 171286                ;
  13. ;                                ;
  14. ; * FUNC VERSION'CLOCK$ NOT IM-  ;
  15. ;        PLEMENTED TO SAVE MEMO- ;
  16. ;        RY SPACE                ;
  17. ;--------------------------------;
  18. ;
  19. *=$7D00
  20. ;
  21.  .OPT NOSYM, NOLIST
  22.        .LIB SYMBOLS
  23.        .OPT LIST
  24. ;--------------------------------;
  25. ;     PACKAGE SETUP              ;
  26. ;--------------------------------;
  27. MAP .BYTE C64+ROMMED
  28.  .WORD END
  29.  .WORD SIGNAL
  30. ;--------------------------------;
  31. ;     PACKAGE TABLE              ;
  32. ;--------------------------------;
  33.        .BYTE 5,'CLOCK'
  34.  .WORD PROCS,DUMMY
  35.  .BYTE 0
  36. ;--------------------------------;
  37. ;     PROCEDURE TABLE            ;
  38. ;--------------------------------;
  39. PROCS  .BYTE 8,'SHOWTIME'
  40.  .WORD PCSHOW
  41.        .BYTE 7,'TIMEPOS'
  42.  .WORD PCSPOS
  43.  .BYTE 9,'SETROMMED'
  44.  .WORD PCSROM
  45.  .BYTE 6,'ROMMED'
  46.  .WORD PCGROM
  47.  .BYTE 9,'TIMECOLOR'
  48.  .WORD PCTCOL
  49. ;
  50.  .BYTE 0
  51. ;--------------------------------;
  52. ;     PROC DEFINITIONS           ;
  53. ;--------------------------------;
  54. PCSHOW
  55.  .BYTE PROC
  56.  .WORD CDSHOW
  57.  .BYTE 1
  58.  .BYTE INT+VALUE
  59.  .BYTE ENDPRC
  60. PCSPOS
  61.  .BYTE PROC
  62.  .WORD CDSPOS
  63.  .BYTE 2
  64.  .BYTE INT+VALUE
  65.  .BYTE INT+VALUE
  66.  .BYTE ENDPRC
  67. PCSROM
  68.  .BYTE PROC
  69.  .WORD CDSROM
  70.  .BYTE 1
  71.  .BYTE INT+VALUE
  72.  .BYTE ENDPRC
  73. PCGROM
  74.  .BYTE FUNC+REAL
  75.  .WORD CDGROM
  76.  .BYTE 0
  77.  .BYTE ENDFNC
  78. PCTCOL
  79.  .BYTE PROC
  80.  .WORD CDTCOL
  81.  .BYTE 1
  82.  .BYTE INT+VALUE
  83.  .BYTE ENDPRC
  84. ;--------------------------------;
  85. ;     SIGNAL ROUTINE             ;
  86. ;--------------------------------;
  87. SIGNAL CPY #LINK ; PROC
  88.  BNE CHK1
  89.  SEI
  90.  LDX CINV
  91.  LDA CINV+1
  92.  STX STCINV
  93.  STA STCINV+1
  94.  LDX #<IRQ
  95.  LDA #>IRQ
  96.  STX CINV
  97.  STA CINV+1
  98.  CLI
  99. CHK1 CPY #DSCRD
  100.  BNE CHKNOT
  101.  LDA MAP
  102.  AND #ROMMED
  103.  BNE CHKNOT
  104.  SEI
  105.  LDX STCINV
  106.  LDA STCINV+1
  107.  STX CINV
  108.  STA CINV+1
  109.  CLI
  110. CHKNOT RTS            ; ENDPROC
  111. ;--------------------------------;
  112. ;     ROUTINES                   ;
  113. ;--------------------------------;
  114. CDSHOW LDA #1          ; PROC
  115.  JSR FNDPAR
  116.  LDY #0
  117.  LDA (COPY1),Y
  118.  INY
  119.  ORA (COPY1),Y
  120.  STA PLTTIM
  121.  BNE NOSPC
  122.  LDY SCRN
  123.  LDA SCRN+1
  124.  STY COPY1
  125.  STA COPY1+1
  126.  LDY #7
  127.        LDA #' '        ;  SPC
  128. NXTSPC STA (COPY1),Y
  129.  DEY
  130.  BPL NXTSPC
  131. NOSPC  RTS             ; ENDPROC
  132. ;
  133. CDSPOS LDA #1          ; PROC
  134.        JSR FNDPAR      ;  YCOR
  135.  LDY #0
  136.  LDA (COPY1),Y
  137.  BNE ERR1
  138.  INY
  139.  LDA (COPY1),Y
  140.  CMP #26
  141.  BCS ERR1
  142.  TAY
  143.  LDA #0
  144.  LDX #0
  145. NXTLIN DEY
  146.  BEQ KLRLIN
  147.  CLC
  148.  ADC #40
  149.  BCC NOINCX
  150.  INX
  151. NOINCX JMP NXTLIN
  152. KLRLIN
  153.  STA SCRN
  154.        STA KLEUR       ;  COLOR
  155.  TXA
  156.  CLC
  157.  ADC HIBASE
  158.  STA SCRN+1
  159.  TXA
  160.  CLC
  161.  ADC #>COLRAM
  162.  STA KLEUR+1
  163.        LDA #2          ;  XCOR
  164.  JSR FNDPAR
  165.  LDY #0
  166.  LDA (COPY1),Y
  167.  BNE ERR1
  168.  INY
  169.  LDA (COPY1),Y
  170.  TAX
  171.  DEX
  172.  TXA
  173.  CMP #41
  174.  BCS ERR1
  175.  CLC
  176.  ADC SCRN
  177.  BCC NOINCR
  178.  INC SCRN+1
  179.  INC KLEUR+1
  180. NOINCR STA SCRN
  181.  STA KLEUR
  182.        RTS ; ENDPROC
  183. ;
  184. ERR1   LDX #1          ; PROC
  185.        JMP RUNERR      ; ENDPROC
  186. ;
  187. CDSROM LDA #1          ; PROC
  188.  JSR FNDPAR
  189.  LDY #0
  190.  LDA (COPY1),Y
  191.  INY
  192.  ORA (COPY1),Y
  193.  BEQ NOROM
  194.  LDA #ROMMED
  195.  ORA MAP
  196.  STA MAP
  197.        RTS             ; ENDPROC
  198. ;
  199. NOROM  LDA MAP         ; SUB
  200.  AND #255-ROMMED
  201.  STA MAP
  202.        RTS             ; ENDSUB
  203. ;
  204. CDGROM LDA MAP         ; PROC
  205.  AND #ROMMED
  206.  BEQ NOTROM
  207.  LDA #1
  208. NOTROM TAY
  209.  LDA #0
  210.  JSR INTFP
  211.  JSR PUSHA1
  212.        RTS ; ENDPROC
  213. ;
  214. CDTCOL LDA #1          ; PROC
  215.  JSR FNDPAR
  216.  LDY #0
  217.  LDA (COPY1),Y
  218.  STA TIMCOL
  219.  BMI SKIPIT
  220.  INY
  221.  LDA (COPY1),Y
  222.  STA TIMCOL
  223.  CMP #26
  224.  BCC SKIPIT
  225.  LDA #128
  226.  STA TIMCOL
  227. SKIPIT RTS             ; ENDPROC
  228. ;--------------------------------;
  229. ;     INTERRUPT                  ;
  230. ;--------------------------------;
  231. IRQ
  232.  LDA PLTTIM
  233.  BEQ SKIPP
  234.  LDA TIMCOL
  235.  BPL OKCOL
  236.  LDA COLOR
  237. OKCOL
  238.  LDX #7
  239. NXTCOL STA COLRAM,X
  240. ;
  241. KLEUR=NXTCOL+1
  242. ;
  243.  DEX
  244.  BPL NXTCOL
  245. ;--------------------------------;
  246. ; PRINT TOD IN COMAL-FORMAT:     ;
  247. ;    HH:MM:SS                    ;
  248. ;--------------------------------;
  249.        LDA D1TOD1      ; UPD CLOCK
  250.        LDX #7          ;
  251.        LDA D1TODS      ; SEC
  252.  JSR PLOTNR
  253.  DEX
  254.  LSR A
  255.  LSR A
  256.  LSR A
  257.  LSR A
  258.  JSR PLOTNR
  259.  DEX
  260.  LDA #':'
  261.  JSR PLOTNR
  262.  DEX
  263.        LDA D1TODM      ; MIN
  264.  JSR PLOTNR
  265.  DEX
  266.  LSR A
  267.  LSR A
  268.  LSR A
  269.  LSR A
  270.  JSR PLOTNR
  271.  DEX
  272.  LDA #':'
  273.  JSR PLOTNR
  274.  DEX
  275. ;
  276.        LDA D1TODH ; HRS
  277.  BPL NOTPM
  278.        AND #%01111111 ; BIT 7
  279. ;
  280.        CMP #8          ; 20H
  281.        BEQ CH20
  282.        CMP #9          ; 21H
  283.        BEQ CH21
  284.        CMP #18         ; 12H
  285.        BEQ CH12
  286. ;
  287.        CLC             ; ADD FOR
  288.        ADC #2+16       ; PM
  289.        JMP PR
  290. ;
  291. CH12   LDA #2+16
  292.        JMP PR
  293. ;
  294. CH20   LDA #0+32
  295.        JMP PR
  296. ;
  297. CH21   LDA #1+32
  298.        JMP PR
  299. ;
  300. NOTPM
  301.        CMP #18 ; 24H
  302.        BNE PR
  303.        LDA #0
  304. ;
  305. PR     JSR PLOTNR      ; PRINT
  306.        DEX             ; TIME
  307.  LSR A
  308.  LSR A
  309.  LSR A
  310.  LSR A
  311.  JSR PLOTNR
  312. ;
  313. SKIPP JMP (STCINV)
  314. ;
  315. PLOTNR PHA             ; SUB
  316.        AND #%00001111
  317.  CLC
  318.        ADC #'0'        ;  SCRNCODE
  319. POKE STA SCREEN,X
  320. ;
  321. SCRN=POKE+1
  322. ;
  323.  PLA
  324.        RTS             ; ENDSUB
  325. ;--------------------------------;
  326. ;     VARIABLES, ETC.            ;
  327. ;--------------------------------;
  328. STCINV *=*+2
  329. ;
  330. PLTTIM .BYTE 0
  331. TIMCOL .BYTE 128
  332. ;
  333. ;
  334. ; AND FINALLY THE
  335. ;
  336. END .END
  337.